import Vue from 'vue'
import Vuex from 'vuex'
// 导入获取用户信息函数
import { getInfo } from '../api/login.js'

Vue.use(Vuex)

export default new Vuex.Store({
  // 保存信息
  state: {
    // 用户信息
    user: '',
    // 区别用户性别
    gender: {
      0: '未知',
      1: '男',
      2: '女'
    },
    // 登录状态
    isLogin: false
  },
  getters: {
    collectState (state) {
      return function (id) {
        return (
          state.user.collectArticles && state.user.collectArticles.includes(+id)
        )
      }
    },
    starState (state) {
      return function (id) {
        return state.user.starArticles && state.user.starArticles.includes(+id)
      }
    }
  },
  // 修改信息,需要设置相应的方法来修改state中的数据
  mutations: {
    // state:仓库中的数据
    // value:修改后的值
    setUser (state, payload) {
      state.user = payload
    },
    setIsLogin (state, payload) {
      // 切换登录状态
      state.isLogin = payload
    }
  },
  actions: {
    // 更新用户信息
    async upDateUser (context) {
      // 获取用户信息
      const res = await getInfo()
      // 将用户信息交给mutation处理
      context.commit('setUser', res.data.data)
    }
  },
  modules: {}
})
